package fatesg.soft.entidade;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="cnh")
public class Cnh extends Entidade implements Serializable {

	private static final long serialVersionUID = -7163605079760522874L;

	private Long numero;
	private Date dataValidade;
	private String categoria;
	private Set<Multa> multas;
	private Cliente condutor;

	@Id
	@Column(name = "cnh_id")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	public Long getId() {
		return super.getId();
	}

	@Column(name = "numero")
	public Long getNumero() {
		return numero;
	}

	public void setNumero(Long numero) {
		this.numero = numero;
	}

	@Column(name = "dataValidade")
	@Temporal(TemporalType.DATE)
	public Date getDataValidade() {
		return dataValidade;
	}

	public void setDataValidade(Date dataValidade) {
		this.dataValidade = dataValidade;
	}

	@Column(name="categoria")
	public String getCategoria() {
		return categoria;
	}

	public void setCategoria(String categoria) {
		this.categoria = categoria;
	}

	@OneToMany(mappedBy="cnh")
	public Set<Multa> getMultas() {
		return multas;
	}

	public void setMultas(Set<Multa> multas) {
		this.multas = multas;
	}

	@OneToOne
	public Cliente getCondutor() {
		return condutor;
	}

	public void setCondutor(Cliente condutor) {
		this.condutor = condutor;
	}

}
